properties of cartesian products